//===========================================================
//					es_tps
//
//	Свои типы и всякие служебные функции
//===========================================================

#include "es_tps.h"
#include "es_spr.h"

FILE *logFile;          // Лог файл

//------------------------------------- cTimer -------------------------------------
// Конструктор
Timer::Timer() 
{ 
	startTicks = 0; 
	pausedTicks = 0; 
	paused = false; 
	started = false; 
} 

// Старт
void Timer::start() 
{ 
	started = true; 
	paused = false; 
	startTicks = SDL_GetTicks(); 
} 

// Остановка
void Timer::stop() 
{ 
	started = false; 
	paused = false; 
} 

// Получение времени
int Timer::get_ticks() 
{ 
	if ( started )
	{ 
		if ( paused ) 
			return pausedTicks; 
		else 
		    return SDL_GetTicks() - startTicks; 
	} 
	return 0; 
}

// Пауза
void Timer::pause() 
{ 
	if ( (started == true) && (paused == false) ) 
	{ 
		paused = true;
		pausedTicks = SDL_GetTicks() - startTicks;
	} 
} 

// Запуск
void Timer::unpause() 
{ 
	if( paused == true )
	{ 
		paused = false;
		startTicks = SDL_GetTicks() - pausedTicks;
		pausedTicks = 0; 
	} 
} 

// Запущен ли таймер?
bool Timer::is_started()
{ 
	return started; 
} 
// Приостановлен ли таймер?
bool Timer::is_paused() 
{ 
	return paused;
} 

// Получение имени файла из его пути
string getFileName(char *path)
{
	char g = 'z';	int i = strlen(path)-1;	string retstr = path;
	while ( g != '/' )
	{
		g = path[i];
		i--;
	}
	retstr = retstr.substr(i+2);
	retstr = retstr.substr(0, retstr.length()-4);

	return retstr;
}

// Создание лога
void LogCreate()
{
    logFile=fopen("game.log","w");
	fclose(logFile);
}

// Запись в лог
void LogWrite(const char *str, ...)
{
	char buffer[16384];

	time_t ltime;
	time( &ltime );
	char *mtime=ctime( &ltime );
	mtime[strlen(mtime)-1]=0;

	//Работаем со строкой
	va_list argptr;
	va_start(argptr, str);
	vsprintf(buffer, str, argptr);
	va_end(argptr);

	logFile=fopen("game.log","a+t");
	fprintf(logFile,"[%s] %s\n",mtime,buffer);
	fclose(logFile);
}